/******************************************************************************
 * Copyright (C) 2017 Chengdu Dlhd information industry co. LTD.
 * All Rights Reserved.
 * 本软件为成都顶联互动信息产业有限公司开发研制。未经本公司正式书面同意，其他任何个人、团体不得使用、复制、修改或发布本软件.
 *****************************************************************************/
package net.dgg.dggcloud.service.jrcrm.dao.customer;

import net.dgg.dggcloud.core.minidao.annotation.Arguments;
import net.dgg.dggcloud.core.minidao.annotation.MiniDao;
import net.dgg.dggcloud.core.minidao.hibernate.MiniDaoSupportHiber;
import net.dgg.dggcloud.service.jrcrm.entity.customer.Customer;
import net.dgg.dggcloud.service.jrcrm.entity.customer.ReturnVisitCustomer;

import java.util.List;
import java.util.Map;

/**
 * 客户回访数据库访问接口
 * @ClassName: CustomerDao
 * @author 钟鑫
 * @Date: 2017年11月16日 08:16:51
 * @Version V1.0
 */
@MiniDao
public interface ReturnVisitCustomerDao extends MiniDaoSupportHiber<ReturnVisitCustomer> {

    /**
     * 查询未回访、待回访列表
     * @param map 参数
     *              queryType：查询分类（NO：未回访，WAIT:待回访）空为查询全部
     * @return 查询结果
     */
    List<Map> queryReturnVisitCustomerList(Map map);

    /**
     * 查询未回访、待回访客户列表统计数量
     * @param map 参数
     *            queryType：查询分类（NO：未回访，WAIT:待回访）空为查询全部
     * @return 结果集合
     */
    Integer countReturnVisitCustomerList(Map map);
    Integer getCountReturnVisitCustomerList(Map map);

    /**
     * 根据多个id获取数据集合
     * @param ids 多个主键拼接字符串，以逗号隔开
     * @return 结果集合
     */
    @Arguments({"ids"})
    List<Map> queryByIds(String ids);

    /**
     * 根据参数查询已回访客户
     * @param paramMap 参数map
     * @return 结果集合
     */
    List<Map> queryAlreadyReturnVisitList(Map<String, Object> paramMap);

    /**
     * 根据参数统计已回访客户
     * @param paramMap 参数map
     * @return 结果集合
     */
    Integer countAlreadyReturnVisitList(Map<String, Object> paramMap);


    /**
     * 根据参数查询已回访客户
     * @param paramMap 参数map
     * @return 结果集合
     */
    List<Map> queryAlreadyCustomerReturnVisitList(Map<String, Object> paramMap);

    /**
     * 根据参数统计已回访客户
     * @param paramMap 参数map
     * @return 结果集合
     */
    Integer countAlreadyCustomerReturnVisitList(Map<String, Object> paramMap);

    /**
     * 根据回访结果及跟进人组织id统计
     * @param map 参数
     * @return 统计结果
     */
    Integer countByResultAndFollowerOrgIds(Map map);
}
